package com.example.f8399.testdemo.dialog;

import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.view.Gravity;
import android.view.Window;
import android.view.WindowManager;

import com.blankj.utilcode.util.ScreenUtils;
import com.blankj.utilcode.util.ToastUtils;

/**
 * onCreateDialog 与 onCreateView 每次只能使用其中的一种，不能同时使用的，而且前者的优先级比后者的高
 * 但是使用方面没有什么区别，所以可以根据你的需要去使用
 */

public class MyDialogFragment extends DialogFragment {
    private static MyDialogFragment mFragment;
    public static MyDialogFragment newInstance() {
        if (mFragment == null) {
            mFragment = new MyDialogFragment();
        }
        return mFragment;
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
        builder.setMessage("如果想要修改dialog宽高以及显示位置请修改dialogfragment的onResume 方法，这个很重要哟");
        builder.setTitle("this is title");
        return builder.create();
    }

    /*
    * 在此处设置dialog的位置，以及宽高
    * */
    @Override
    public void onResume() {
        super.onResume();
        Dialog dialog = mFragment.getDialog();
        if (dialog != null) {
            Window window = dialog.getWindow();
            window.setGravity(Gravity.BOTTOM);//底部显示

            WindowManager.LayoutParams attributes = window.getAttributes();
            attributes.width =(int)(ScreenUtils.getScreenWidth()*0.9);//手机屏幕宽度的0.9
            attributes.height =(int)(ScreenUtils.getScreenHeight()*0.3);//手机屏幕高度的0.3

            window.setAttributes(attributes);

        }else {
            ToastUtils.showShort("获取的dialog 是 null");
        }
    }
}
